package ar.uade.distribuidas.tpo.dba.util;

import java.util.Arrays;
import java.util.List;

import org.joda.time.LocalDate;

import ar.uade.distribuidas.tpo.dba.dao.ClienteDAO;
import ar.uade.distribuidas.tpo.dba.dao.CotizacionDAO;
import ar.uade.distribuidas.tpo.dba.dao.RodamientoDAO;
import ar.uade.distribuidas.tpo.dba.dao.SolicitudDeCotizacionDAO;
import ar.uade.distribuidas.tpo.dba.dominio.Cliente;
import ar.uade.distribuidas.tpo.dba.dominio.Cotizacion;
import ar.uade.distribuidas.tpo.dba.dominio.ItemCotizacion;
import ar.uade.distribuidas.tpo.dba.dominio.ItemSolicitudDeCotizacion;
import ar.uade.distribuidas.tpo.dba.dominio.Rodamiento;
import ar.uade.distribuidas.tpo.dba.dominio.SolicitudDeCotizacion;

public class OrdenDePedidoGenerate {

	public static void main(String[] args) {
		Cliente cli =  new Cliente(273263709, "1244");
		CotizacionDAO cDao = CotizacionDAO.getInstance();
		
		RodamientoDAO rDao = RodamientoDAO.getInstance();
		
		Rodamiento rod1 = new Rodamiento(735, "NTN", "rodamientolin", "Brasil");
		Rodamiento rod2 = new Rodamiento(346, "TNT", "rodamientoplus", "Peru");
		Rodamiento rod3 = new Rodamiento(216, "LTN", "rodamientolex", "Uruguay");
		
		ItemCotizacion item1 = new ItemCotizacion();
		ItemCotizacion item2 = new ItemCotizacion();
		ItemCotizacion item3 = new ItemCotizacion();
		
		List<ItemCotizacion> items;
		List<ItemSolicitudDeCotizacion> itemsSol = Arrays.asList(new ItemSolicitudDeCotizacion(1L, rod1, 10), new ItemSolicitudDeCotizacion(2L, rod2, 20), new ItemSolicitudDeCotizacion(3L, rod3, 30));
		SolicitudDeCotizacion sol = new SolicitudDeCotizacion();
		Cotizacion cotizac = new Cotizacion();
		
			 rDao.persist(rod1);
			 rDao.persist(rod2);
			 rDao.persist(rod3);
			 
			 ClienteDAO.getInstance().persist(cli);
			 
//			 	item1.setItem(itemsSol.get(0));
//			 	item1.setSolicitud(sol);
//			 	item1.setId(1);
//			 	
//				item2.setItem(itemsSol.get(1));
//				item2.setSolicitud(sol);
//				item2.setId(2);
//				
//				item3.setSolicitud(sol);
//				item3.setItem(itemsSol.get(2));
//				item3.setId(3);		
			 
			 	sol.setId(423L);
				sol.setCliente(cli);
				//sol.setFecha(new LocalDate());
				sol.setItems(itemsSol);
				SolicitudDeCotizacionDAO.getInstance().persist(sol);
				
				items = Arrays.asList(item1, item2, item3);
				
				
				cotizac.setId(12L);
				cotizac.setFechaDesde("2004-4-3"); //ver como queda guardada la fecha en la DB. Idem Solicitud cotizacion.
				cotizac.setCliente(cli);
				cotizac.setDiasDeVigencia(30);
				//cotizac.setCondicionVenta(condVenta); 
				cotizac.setItemsCotizacion(items);
				cDao.persist(cotizac);
				
		}
		
				//@Test
//		public void testReadXml() {
//			OrdenDePedidoXmlDao dao = OrdenDePedidoXmlDao.getInstancia("orden-de-pedido");
//			List<OrdenDePedidoDTO> ordenesDelXML = null;
//			try {
//				ordenesDelXML = dao.getOrdenDePedidoDTO();
//			} catch (MalformedURLException | RemoteException | NotBoundException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			OrdenDePedidoDTO ordenDelXML = ordenesDelXML.get(0);
//			
////			assertTrue("Nombre del medio de pago correcto", ordenDelXML.getCondicionVenta().getMediopago().getNombreMedio().equals("PagoContado"));
////			assertTrue("Tiene todos las politicas", ordenDelXML.getCondicionVenta().getPoliticas().size() == 1);
//			assertTrue("numero", ordenDelXML.getNumero() == 123);
//			assertTrue("cuil", ordenDelXML.getCliente().getCuil() == 273263709);
//			assertTrue("fecha", ordenDelXML.getFecha().equals(LocalDate.parse("2014-05-13", FormatUtils.DATE_FORMATTER)));
//			assertTrue("cliente", ordenDelXML.getCliente().equals(cli));
//			ItemSolicitudDeCotizacion item1 = new ItemSolicitudDeCotizacion();
//			item1.setRodamiento(new Rodamiento(1111, "RS", "NTN", "JAPON"));
//			item1.setCantidad(100);
//		//	assertTrue("rodamiento 1", s.getItemsPorCotizacion().get(0).equals(item1));
//			OrdenDePedidoDAO dbDao = OrdenDePedidoDAO.getInstancia();
//			 dbDao.persist(ordenDelXML);
//
//	}

}
